Various interpreter modes
such as Shell script mode or AWK mode will automatically insert
or update the buffer's magic number, a special comment on the
first line that makes the exec systemcall know how
to execute the script. To this end the script is automatically
made executable upon saving, with executable-chmod
as argument to the system chmod command. The magic
number is prefixed by the value of
executable-prefix.
Any
file whose name matches
executable-magicless-file-regexp is not furnished
with a magic number, nor is it made executable. This is mainly
intended for resource files, which are only meant to be read
in.
The variable
executable-insert says what to do when
executable-set-magic is called non-interactively,
e.g. when file has no or the wrong magic number:
nilt The variable
executable-query controls whether to ask about
inserting or updating the magic number. When this is
nil updating is only done with M-x
executable-set-magic. When this is function
you are queried whenever executable-set-magic is
called as a function, such as when Emacs puts a buffer in Shell
script mode. Otherwise you are alway queried.
M-x
executable-self-display adds a magic number to the buffer,
which will turn it into a self displaying text file, when called
as a Un*x command. The “interpreter” used is
executable-self-display with argument
‘+2’.